package com.enzoism.springboot.fastjson.a05innerCreate.pack5;

/**
 * 创建一个private内部类，让它实现一个public接口。
 * 写一个方法，它返回一个指向此private内部类的实例的引用，
 * 并将此引用向上转型为该接口类型。通过尝试向下转型，说明此内部类被完全隐藏了
 */
public class DiveClass {

    private class InterfaceAImpl implements InterfaceA{
        @Override
        public void printA() {
            System.out.println("-------->InterfaceAImpl实现");
        }
        // 尝试这个方法能不能被外部访问
        public void printB(){
            System.out.println("-------->printB");
        }
    }
    // 返回一个外部对象
    private InterfaceAImpl getInterfaceAImpl(){
        DiveClass diveClass = new DiveClass();
        return diveClass.new InterfaceAImpl();
    }
}
